package com.zmn.oms.dubbo.dto.zmn.channel;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 渠道订单查询接口返回订单数据定义
 *
 * @author xiewenbing
 * @date 2021/03/18 18:30
 */
@Data
public class OrderInfoDRO implements Serializable {
    private static final long serialVersionUID = 8443098025869074572L;

    /**
     * 订单ID
     */
    private Long orderId;

    /**
     * 服务分类
     */
    private Integer servCategId;

    /**
     * 服务分类名称
     */
    private String servCategName;

    /**
     * 服务项列表
     */
    private List<OrderServiceItemDRO> servItems;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 状态
     */
    private String statusName;

    /**
     * 是否为空跑订单， 1,否， 2，是
     */
    private Integer onlyRun;

    /**
     * 接单时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date receiveTime;

    /**
     * 确认时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;

    /**
     * 派单时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date distributeTime;

    /**
     * 工程师接单时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date takeTime;

    /**
     * 工程师上门时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date visitTime;

    /**
     * 维修完成时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date completeTime;

    /**
     * 订单取消时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    /**
     * 城市ID
     */
    private Integer cityId;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 区域ID
     */
    private Integer countyId;

    /**
     * 区域名称
     */
    private String countyName;

    /**
     * 客户电话1
     */
    private String telephone;

    /**
     * 联系人
     */
    private String contactName;

    /**
     * 性别：1 男; 2 女; 3 保密
     */
    private Integer gender;

    /**
     * 用户地址
     */
    private String address;

    /**
     * 街道
     */
    private String street;

    /**
     * 经度
     */
    private Double longitude;

    /**
     * 纬度
     */
    private Double latitude;

    /**
     * 预约时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date dutyTime;

    /**
     * 产品id
     */
    private Integer productId;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 数量
     */
    private Integer productCount;

    /**
     * 工程师id
     */
    private Integer masterId;

    /**
     * 工程师姓名
     */
    private String masterName;

    /**
     * 工程师电话
     */
    private String masterPhone;

    /**
     * 小号
     */
    private String bindTelephone;

    /**
     * 订单金额
     */
    private Integer originalAmount;

    /**
     * 应收总额
     */
    private Integer totalAmount;

    /**
     * 优惠总金额
     */
    private Integer discountAmount;

    /**
     * 支付状态
     */
    private Integer payStatus;

    /**
     * 支付时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 渠道预付款
     */
    private Integer channelPrepayAmount;

    /**
     * 渠道预付款支付状态：1未支付，2已支付，3退款
     */
    private Integer channelPrepayStatus;

    /**
     * 预付款支付时间
     */
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date prepayTime;

    /**
     * 订单取消原因
     */
    private String cancelRemark;

    /**
     * 第三方扩展数据
     */
    private String extraData;

    /**
     * 扩展数据，仅供内部定义使用，用于协助完成同步等业务逻辑，格式根据业务需要自由定义
     */
    private String extOuterData;

    /**
     * 外部订单ID
     */
    private String thirdOrderId;

    /**
     * 产品图片URL，多个之间用“,”分隔
     */
    private String productPictureUrls;

    /**
     * 二次上门类型：1拉修，2待件，3其他
     */
    private Integer multipleVisitType;

    /**
     * 二次上门预计时间
     */
    private Date multipleExpectVisitTime;
}
